struct ListNode* front_node;

bool recursive_Check(struct ListNode* currentNode)
{
    if(currentNode !=NULL)
    {
        if(!recursive_Check(currentNode->next))
            return false;
        
        if(currentNode->val!=front_node->val)
            return false;
        
        front_node = front_node->next;
    }
    return true;
}

bool isPalindrome(struct ListNode* head){
    front_node = head;
    return recursive_Check(head);
}